﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Filmy.Model;
using Filmy.Kontroler.BazaDanych;

namespace Filmy
{
    class AutoTor
    {
        public AutoTor()
        {
            filmy = new tFilmy();
        }

        tFilmy filmy;

        private string[] dajTorZtemp()
        {
            string path = Path.GetTempPath();
            string filtr = "*.tor";
            string[] torrentyZdysku = Directory.GetFiles(path, filtr);
            string ntor;
            for (int p = 0; p < torrentyZdysku.Length; p++)
            {
                ntor = torrentyZdysku[p].Substring(torrentyZdysku[p].LastIndexOf("\\") + 1);
                ntor = ntor.Remove(ntor.LastIndexOf("."));
                torrentyZdysku[p] = ntor;
            }
            return torrentyZdysku;
        }


        private string Wersja(string tor, string maska)
        {
            if (tor.Contains(maska))
            {
                return maska;
            }
            else
            {
                return "";
            }

        }

        private string dajWersje(string tor)
        {
            string wersja = "";
            string[] maski = { "720p", "720P", "720", "1080p", "1080P", "1080i", "1080I", "1080", "DivX", "divx", "DIVX", "XviD", "xvid", "XVID", "DVDR", "dvdr", "dvd", "420p"};
            foreach (string maska in maski)
            {
                wersja = Wersja(tor, maska);
                if (wersja != "")
                    break;
            }
            return wersja;
        }

        private bool sprCzyJest(string tor, List<string> PosiadaneTorrenty)
        {
            bool ok = true;
            foreach (string pt in PosiadaneTorrenty)
            {
                if (tor == pt)
                {
                    ok = false;
                    break;
                }
            }
            return ok;
        }

        public bool szukajTor()
        {          
            string[] torrentyZdysku = dajTorZtemp();
            bool czydod = false;
            List<string> PosiadaneTorrenty = filmy.dajTorrenty();
            foreach (string tor in torrentyZdysku)
            {
                if (sprCzyJest(tor, PosiadaneTorrenty))
                {
                    czydod = true;
                    Fnowy f_nowy = new Fnowy(tor, dajWersje(tor), generujNazwe(tor));
                    f_nowy.ShowDialog();
                    if (f_nowy.DialogResult == DialogResult.OK)
                    {
                        PosiadaneTorrenty = filmy.dajTorrenty();
                    }
                }
                
            }
            return czydod;
        }

        public string generujNazwe(string tor)
        {
            if (tor != "")
            {
                try
                {
                    int i = 0;

                    while (i < 4)
                    {
                        tor = tor.Remove(tor.LastIndexOf("."));
                        i++;
                    }
                    tor = tor.Replace(".", " ");
                }
                catch(Exception ex)
                {
                    throw ex;
                }
                return tor;
            }
            return "";
        }
    }
}
